

public class Liczba 
{
    private int n;
    private String tab="0123456789ABCDEFG";
    
    Liczba(){}
    
    Liczba(int n) throws LiczbaException
    {
    this.n=n;
    }
    
    Liczba(String n, int podstawa) throws LiczbaException
    {
    int i,j,k=1,s=0,c=0;
    //tab[0]="0",tab[1]="1",tab[2]="2",tab[3]="3",tab[4]="4",tab[5]="5",tab[6]="6",tab[7]="7",tab[8]="8",tab[9]="9",tab[10]="A",tab[11]="B",tab[12]="C",tab[13]="D",tab[14]="E",tab[15]="F";
    for (j=n.length()-1;j>=0;j--)
    {

    	for (i=0;i<16;i++)

    	
    	{
    		if(n.regionMatches(j,tab,i,1))
    		{
    			if(i>=podstawa) throw new LiczbaException("Blad danych");
    			c=1;
    			break;
    		}
    //if (((int)n[j]-48)>=podstawa) throw LiczbaException ("Blad danych");
    	}
    	if (c==0) throw new LiczbaException ("Blad danych");
    		s=s+i*k;
    		k=k*podstawa;
    }
    this.n=s;
   
    }
    
        String zapis (int podstawa)
        {
        	int n=this.n,i;
        	String out="";
        		while (n>0)
        		{
        			i=n%podstawa;
        			out=tab.substring(i,i+1)+out;
        			n=n/podstawa;
        		}
        		return out;
        }
   
	}
